-
Notifications
You must be signed in to change notification settings - Fork 284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement a bi-directional WebSocket based RPC system #2797
Conversation
This implements a bi-directional alternative to the REST interface system, enabling HTTP based peer-to-peer communication over a unidirectional HTTP/TCP connection.
FYI we had something similar, but not over websocket: https://github.com/Geod24/agora-server/blob/v0.x.x/source/agora/network/RPC.d |
Didn't know about that, also looks interesting, especially since that can probably be better tuned for performance for cases where that is important.
To avoid me talking nonsense, can you clarify what you mean with "both"? ;-) |
Implemented |
Our need was to expose an API. Starting with a REST API was super easy, because you just write an |
Okay, yeah, that makes sense. I've also made sure to make most use cases work for REST and for the new module using the same interface definition. HTTP/2 and HTTP/3 would indeed be logical candidates to support as a replacement for or as an addition to WebSockets, but that of course is a big project just to get the protocol itself supported. I hope to get the HTTP/2 work integrated this year, which already shares a lot with HTTP/3. Hopefully the existing work on QUIC will then make it possible to get an HTTP/3 implementation relatively easily. |
This implements a bi-directional alternative to the REST interface system, enabling HTTP based peer-to-peer communication over a unidirectional HTTP/TCP connection.